Virtual memory is a memory management technique in which a computer architecture's various forms of computer data storage are virtualized, allowing a program to be designed as though the system includes and accesses only a single type of memory. The memory, as virtual memory, operates in the manner of directly addressable read/write memory (RAM). In a virtual memory system, virtual addresses used by software are translated to physical addresses when software accesses memory.